home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD ROM Paradise Collection 4
/
CD ROM Paradise Collection 4 1995 Nov.iso
/
program
/
swagn_r.zip
/
NETWORK.SWG
/
0024_Encryped logins.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1994-08-24
|
3KB
|
103 lines
{
SM> Have you got any idea on how to do a login under Novell 3.11+?
SM> I have some source (SWAG has source for a great TPU), but
SM> unfortunatly it doesn't do encrypted logins.. I managed to find
SM> *some* reference to it in the interrupt list (int 21h, the F2h
SM> multiplexor functions 17h/18h), but it didn't give any details on
SM> how this is done...
hmmm. Novell never released any informations about Password Encrytion !
You got two choices (:-)
1. do a "Set Allow Unencrypted Passwords = ON" on the server console,
use the following, ripped from an old src "Novapi.zip:Novell.pas"
------------------------------------------------------------------------}
uses dos;
[...]
{ obj_type: User = 1, group =2 printserver = 3 }
procedure login_to_file_server( obj_type:integer;
_name,
_password : string;
var retcode:integer);
var
regs : registers;
request_buffer : record
B_length : integer;
subfunction : byte;
o_type : packed array [1..2] of byte;
name_length : byte;
obj_name : packed array [1..47] of byte;
password_length : byte;
password : packed array [1..27] of byte;
end;
reply_buffer : record
R_length : integer;
end;
count : integer;
begin
With request_buffer do
begin
B_length := 79;
subfunction := $14;
o_type[1] := 0;
o_type[2] := obj_type;
for count := 1 to 47 do obj_name[count] := $0;
for count := 1 to 27 do password[count] := $0;
if length(_name) > 0 then
for count := 1 to length(_name) do
obj_name[count]:=ord(upcase(_name[count]));
if length(_password) > 0 then
for count := 1 to length(_password) do
password[count]:=ord(upcase(_password[count]));
{set to full length of field}
name_length := 47;
password_length := 27;
end;
With reply_buffer do
begin
R_length := 0;
end;
With Regs Do Begin
Ah := $e3; { moved to $F2 for v3.x ??? }
Ds := Seg(Request_Buffer);
Si := Ofs(Request_Buffer);
Es := Seg(reply_buffer);
Di := Ofs(reply_buffer);
End;
MsDos(Regs);
retcode := regs.al
end;
procedure logout;
{logout from all file servers}
var regs : registers;
begin
regs.ah := $D7;
msdos(regs);
end;
procedure logout_from_file_server(var id: integer);
{logout from one file server}
var regs : registers;
begin
regs.ah := $F1;
regs.al := $02;
regs.dl := id;
msdos(regs);
end;
------------------------------------------------------------------------
2. get a copy of "Charles Rose: Netware Programming". There are some
<obj> for "C", and in my German version TPU's for Turbo/BP" !